perm filename TAP.OL2[TAP,LCS] blob
sn#336550 filedate 1978-02-19 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE TAP
C00005 ENDMK
Cā;
TITLE TAP
SUBTTL PGM TO INPUT RHYTHMS FROM TTY KEYBOARD
ENTRY TAP ;CALL TAP(ARRAY V)
TAP: JUMP 0
MOVE 2,[XWD -1,[XWD 17000,1]]
TTYSET 2,
MOVEM 1,FOOM# ;PUT RESPONSIBLE TERMINAL # INTO FOOM
MOVSI 1,377777
SETPR2 1, ;THIS INITS READING OF SYS TICKS SINCE RELOAD.
HALT ;FOR SYS ERROR
HRRZ 16,16
MOVE @16
HRRM B1
AOS 16
MOVE @16
HRRM B2
SPCWAR 636367
SETZM TOFF#
SETZM FIRST#
SETZM FT#
MOVE 1,[400001,,START]
SPCWGO 1,
SKIPE TOFF
JRST .+4
MOVEI 1,1
SLEEP 1,
JRST .-4
MOVE I
B2: MOVEM 0
SPCWAR 636367
DETSEG ;GTS RID OF CREATED SEGMENT ??
JRA 16,1(16)
START: SKIPE TOFF
DISMIS
MOVE 2,400215 ;GETS # OF TICKS UPTIME IN AC2
MOVE 2,400000(2)
MOVEM 2,TICK# ;SAVE IN TICK
MOVEI 10,0
JRST 2,.+1(10)
MOVE 1,FOOM
MOVEM 1,FOO#
TTREAD FOO ;READ A KEY
MOVE 1,FOO
TRNN 1,1000 ;META KEY
JRST HIT
CK2: TRNN 1,400 ;CONTROL KEY
JRST HIT
MOVE 2,400215 ;GETS # OF TICKS UPTIME IN AC2
MOVE 2,400000(2)
SUB 2,TICK
CAIG 2,=600 ;IF WE'VE PASSED MORE THAN 600 TICKS, ALL DONE.
DISMIS
JRST DONE
HIT: MOVE 2,400215 ;GET CURRENT NUM. OF TICKS
MOVE 2,400000(2)
MOVE 3,2
SUB 2,TICK ;HOW MANY TICKS SINCE WE LAST LOOKED.
MOVEM 3,TICK ;RESET TICK
SKIPN FIRST ;IS THIS THE FIRST TAP (FIRST=0)
JRST TG2
SETOM FIRST ;NOW WE'LL START MEASURING TIME
SETZM I#
SETZM 1
DISMIS
TG2: FSC 2,233
FMPR 2,TICL
MOVE 1,I
B1: MOVEM 2,0(1) ;PUT FLT.PT. NUM. INTO ARRAY
AOS I
CAIGE 1,=200 ;WHAT FOR? END OF ARRAY?
DISMIS
DONE: SETOM TOFF ;YES, TOO MANY BEATS
DISMIS ;TOFF=-1 = DONE
TICL: 0.01666667
END